package org.jeecg.modules.wlhy.order.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: hy_order货源
 * @Author: jeecg-boot
 * @Date:   2020-12-03
 * @Version: V1.0
 */
@Data
@TableName("hy_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hy_order对象", description="hy_order")
public class HyOrder implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**所属货主*/
	@Excel(name = "货主", width = 15, dictTable = "hy_customer", dicText = "customer_name", dicCode = "id")
	@Dict(dictTable = "hy_customer", dicText = "customer_name", dicCode = "id")
    @ApiModelProperty(value = "所属货主")
    private String customerId;
	/**货源号*/
	@Excel(name = "货源号", width = 15)
    @ApiModelProperty(value = "货源号")
    private String orderNum;
	@Excel(name = "客户单号", width = 15)
	@ApiModelProperty(value = "客户单号")
	private String khdh;
	/**货源类型(1指派2发布到货源大厅)*/
	@Excel(name = "货源类型", width = 15, dicCode = "order_type")
	@Dict(dicCode = "order_type")
    @ApiModelProperty(value = "货源类型(1指派2发布到货源大厅)")
    private String orderType;

//	@Excel(name = "货源类型", width = 15, dicCode = "order_type2")
	@Dict(dicCode = "order_type2")
	@ApiModelProperty(value = "公开货源使用,(1抢单2竞价)")
	private String orderType2;

//	@Excel(name = "管理模式", width = 15)
	@Dict(dicCode = "order_mode")
	@ApiModelProperty(value = "货源模式(1管理费模式2撮合模式)")
	private String orderMode;

	/**业务类型代码(代码集)*/
//	@Excel(name = "业务类型代码(代码集)", width = 15, dicCode = "business_type_code")
	@Dict(dicCode = "business_type_code")
    @ApiModelProperty(value = "业务类型代码(代码集)")
    private String businessTypeCode;
	/**货物品类*/
//	@Excel(name = "货物品类", width = 15)
//    @ApiModelProperty(value = "货物品类")
//    private String goodsType;

	/**货物单位(1吨2件3立方)*/
	@Excel(name = "货物单位", width = 15)
	@Dict(dicCode = "goods_unit")
    @ApiModelProperty(value = "货物单位(1吨2件3立方)")
    private String goodsUnit;
	/**货物名称*/
	@Excel(name = "货物名称", width = 15)
    @ApiModelProperty(value = "货物名称")
    private String descriptionOfGoods;
	/**货物分类代码(代码集)*/
	@Excel(name = "货物分类", width = 15, dicCode = "cargo_type_classification_code")
	@Dict(dicCode = "cargo_type_classification_code")
    @ApiModelProperty(value = "货物分类代码(代码集)")
    private String cargoTypeClassificationCode;
	/**总件数*/
//	@Excel(name = "总件数", width = 15)
//    @ApiModelProperty(value = "总件数")
//	@NotNull
//	@Min(1)
//    private Integer totalNumberOfPackages;
//

//	@Excel(name = "需要车数", width = 15)
	@ApiModelProperty(value = "需要车数")
	private Integer vehicleNum;

	/**体积*/
//	@Excel(name = "体积", width = 15)
	@ApiModelProperty(value = "体积")
	@TableField("`cube`")
	private BigDecimal cube;
//	/**货物项毛重*/
//	@Excel(name = "货物项毛重", width = 15)
//    @ApiModelProperty(value = "货物项毛重")
//    private BigDecimal goodsItemGrossWeight;

	/**货物单价*/
//	@Excel(name = "货物单价", width = 15)
//    @ApiModelProperty(value = "货物单价")
//    private BigDecimal goodsUnitPrice;

	/**单车货物预估重量，账期计算重量*/
//	@Excel(name = "单车货物预估重量", width = 15)
    @ApiModelProperty(value = "单车货物预估重量")
    private BigDecimal goodsWeight;

	@Excel(name = "货物总重量", width = 15)
	@ApiModelProperty(value = "货物总重量")
	private BigDecimal totalGoodsWeight;

	/**运费支付方式(1按运单结算2车队长结算)*/
	@Excel(name = "运费支付方式", width = 15, dicCode = "pay_type")
	@Dict(dicCode = "pay_type")
    @ApiModelProperty(value = "运费支付方式(1按运单结算2车队长结算)")
    private String payType;
	/**车队长id(按车队长时)*/
	@Excel(name = "车队长", width = 15)
	@Dict(dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
    @ApiModelProperty(value = "车队长id")
    private String carrierId;

	@ApiModelProperty(value = "车队长运费计算方式(0全部1按吨2包车价)")
	@Dict(dicCode = "carrierFeeType")
	private String carrierFeeType;
	@ApiModelProperty(value = "车队长运费单价")
	private BigDecimal carrierUnitFee;


	/**亏损货物单价*/
	@Excel(name = "亏损货物单价", width = 15)
    @ApiModelProperty(value = "亏损货物单价")
    private BigDecimal lossGoodsUnitPrice;
	/**运费单价*/
	@Excel(name = "运费单价", width = 15)
    @ApiModelProperty(value = "运费单价")
    private BigDecimal shippingUnitPrice;
	/**运费方式(1一口价2议价3竞价)*/
	@Excel(name = "运费计算方式", width = 15, dicCode = "shipping_type")
	@Dict(dicCode = "shipping_type")
    @ApiModelProperty(value = "运费方式(1单价2议价3竞价4包车价)")
    private String shippingType;

	/**运费方式(1一口价2议价3竞价)*/
	@Excel(name = "货主运费计算方式", width = 15, dicCode = "shipping_type")
	@Dict(dicCode = "shipping_type")
	@ApiModelProperty(value = "货主运费方式(1单价2议价3竞价4包车价)")
	private String customerShippingType;


	@ApiModelProperty(value = "货主运费")
	private BigDecimal customerPrice;

	/**免赔方式(1吨数2比例)*/
	@Excel(name = "免赔方式", width = 15, dicCode = "loss_type")
	@Dict(dicCode = "loss_type")
	@ApiModelProperty(value = "免赔方式(1吨数2比例)")
	private java.lang.String lossType;
	/**亏损免赔数值*/
	@Excel(name = "亏损免赔数", width = 15)
    @ApiModelProperty(value = "亏损免赔数值")
    private BigDecimal lossProportion;

	/**要求的车辆父类型*/
//	@Excel(name = "要求的车辆父类型", width = 15)
    @ApiModelProperty(value = "要求的车辆父类型")
	@Dict(dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id")
    private String vehiclePtype;
	/**要求的车辆类型*/
//	@Excel(name = "要求的车辆类型", width = 15)
    @ApiModelProperty(value = "要求的车辆类型")
	@Dict(dictTable = "hy_vehicle_type", dicText = "text", dicCode = "id")
    private String vehicleType;
	/**备注*/
//	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;

	/**审核状态(0待审核 1审核通过 2审核失败)*/
//	@Excel(name = "审核状态(0待审核 1审核通过 2审核失败)", width = 15)
	@Dict(dicCode = "examine_status")
    @ApiModelProperty(value = "审核状态(0待审核 1审核通过 2审核失败)")
    private String examineStatus;
	/**审核时间*/
//	@Excel(name = "审核时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date examineDate;
	/**审核备注*/
//	@Excel(name = "审核备注", width = 15)
    @ApiModelProperty(value = "审核备注")
    private String examinRemark;
	/**货源状态*/
	@Excel(name = "货源状态", width = 15, dicCode = "order_status")
	@Dict(dicCode = "order_status")
    @ApiModelProperty(value = "货源状态")
    private String orderStatus;

	@Excel(name = "货源发布日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "货源发布日期")
	private Date dtPublish;

//	@Excel(name = "货源完结日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "货源完结日期")
	private Date dtFinish;

	/**发货地址*/
	@Excel(name = "发货地址", width = 15, dictTable = "hy_customer_address_send", dicText = "address_name", dicCode = "id")
	@Dict(dictTable = "hy_customer_address_send", dicText = "address_name", dicCode = "id")
	@ApiModelProperty(value = "发货地址")
	private String addressSendId;
	/**要求发货时间*/
	@Excel(name = "要求发货时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "要求发货时间")
	private Date sendDate;
	/**收货地址*/
	@Excel(name = "收货地址", width = 15, dictTable = "hy_customer_address_receive", dicText = "address_name", dicCode = "id")
	@Dict(dictTable = "hy_customer_address_receive", dicText = "address_name", dicCode = "id")
	@ApiModelProperty(value = "收货地址")
	private String addressReceiveId;
	/**要求交货时间*/
	@Excel(name = "要求交货时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "要求交货时间")
	private Date receiveDate;

	/**发货地址名称*/
	@Excel(name = "发货地址名称", width = 15)
	@ApiModelProperty(value = "发货地址名称")
	private java.lang.String sendAddressName;
	/**发货经度*/
	@Excel(name = "发货经度", width = 15)
	@ApiModelProperty(value = "发货经度")
	private java.math.BigDecimal sendLongitude;
	/**发货维度*/
	@Excel(name = "发货纬度", width = 15)
	@ApiModelProperty(value = "发货纬度")
	private java.math.BigDecimal sendLatitude;
	/**发货详细地址*/
	@Excel(name = "发货详细地址", width = 15)
	@ApiModelProperty(value = "发货详细地址")
	private java.lang.String sendAddress;
	/**发货区域代码*/
//	@Excel(name = "发货区域代码", width = 15)
	@ApiModelProperty(value = "发货区域代码")
	private java.lang.String sendAreaCode;
	/**发货联系人*/
	@Excel(name = "发货联系人", width = 15)
	@ApiModelProperty(value = "发货联系人")
	private java.lang.String sendContactName;
	/**发货联系人电话*/
	@Excel(name = "发货联系人电话", width = 15)
	@ApiModelProperty(value = "发货联系人电话")
	private java.lang.String sendContactTel;

	/**发货联系人证件号*/
	@Excel(name = "发货联系人证件号", width = 15)
	@ApiModelProperty(value = "发货联系人证件号")
	private java.lang.String sendContactCredit;

	/**收货地址名称*/
	@Excel(name = "收货地址名称", width = 15)
	@ApiModelProperty(value = "收货地址名称")
	private java.lang.String receiveAddressName;
	/**收货经度*/
	@Excel(name = "收货经度", width = 15)
	@ApiModelProperty(value = "收货经度")
	private java.math.BigDecimal receiveLongitude;
	/**收货维度*/
	@Excel(name = "收货纬度", width = 15)
	@ApiModelProperty(value = "收货纬度")
	private java.math.BigDecimal receiveLatitude;
	/**收货详细地址*/
	@Excel(name = "收货详细地址", width = 15)
	@ApiModelProperty(value = "收货详细地址")
	private java.lang.String receiveAddress;
	/**收货区域代码*/
//	@Excel(name = "收货区域代码", width = 15)
	@ApiModelProperty(value = "收货区域代码")
	private java.lang.String receiveAreaCode;
	/**收货联系人*/
	@Excel(name = "收货联系人", width = 15)
	@ApiModelProperty(value = "收货联系人")
	private java.lang.String receiveContactName;
	/**收货联系人电话*/
	@Excel(name = "收货联系人电话", width = 15)
	@ApiModelProperty(value = "收货联系人电话")
	private java.lang.String receiveContactTel;

	/**收货联系人电话*/
	@Excel(name = "收货联系人证件号", width = 15)
	@ApiModelProperty(value = "收货联系人证件号")
	private java.lang.String receiveContactCredit;

//	@Excel(name = "公司", width = 15, dictTable = "hy_company", dicText = "company_name", dicCode = "id")
//	@Dict(dictTable = "hy_company", dicText = "company_name", dicCode = "id")
//	@ApiModelProperty(value = "公司")
//	private String companyId;

//	@ApiModelProperty(value = "账期金额")
//	private BigDecimal accPeriodAmt;

//	@ApiModelProperty(value = "账期支付类型(1余额支付2平台账期)")
//	@Dict(dicCode = "acc_period_type")
//	private String accPeriodType;

	@ApiModelProperty(value = "是否使用油气(0不使用1万金油2油气卡 3 油气平台)")
	@Dict(dicCode = "izUsedGas")
	private String izUsedGas;

	@ApiModelProperty(value = "油气充值金额")
	private BigDecimal gasRechargeAmount;




//	@Excel(name = "是否导入货源(1表示是 0表示否)", width = 15)
	@ApiModelProperty(value = "是否导入货源(0正常1模板导入)")
	@Dict(dicCode = "yn")
	private String orderImportFlag;

	@ApiModelProperty(value = "卸车费")
	private BigDecimal unloadingFee;

	@ApiModelProperty(value = "信息费")
	private BigDecimal informationFee;

	@ApiModelProperty(value = "其他费用")
	private BigDecimal serviceFee;

	@Dict(dictTable = "hy_customer", dicText = "customer_name", dicCode = "id")
	@ApiModelProperty(value = "经纪人")
	private String agentId;
	@ApiModelProperty(value = "经纪人运费")
	private BigDecimal agentPrice;

	/**创建人*/
	@Excel(name = "创建人", width = 15)
	@ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建日期")
	private Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新日期")
	private Date updateTime;

	@ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
	@TableLogic
	private String delFlag;

	@ApiModelProperty(value = "货量不足，司机不能接单设置")
	private Boolean orderSetting;

	@ApiModelProperty(value = "补助费")
	private BigDecimal bz;

	@ApiModelProperty(value = "卸车补助费")
	private BigDecimal unloadingBz;

	@ApiModelProperty(value = "预付运费计算方式  1按吨 2整车")
	@Dict(dicCode = "pre_type")
	private String preType;

	@ApiModelProperty(value = "预付运费单价")
	private BigDecimal preUnitFee;

	@TableField(exist = false)
	private String keyword;

	@ApiModelProperty(value = "项目经理")
	private String introducer;

	@ApiModelProperty(value = "调度人")
	private String dispatcher;

	/**合同*/
	@Excel(name = "合同", width = 15)
	@ApiModelProperty(value = "合同")
	private String imgContract;

	/**合同期自*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "合同期自")
	private Date expireStartTime;
	/**合同期至*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "合同期至")
	private Date expireEndTime;

	@ApiModelProperty(value = "合同编号")
	private String contractNumber;

	/**账期*/
	@Excel(name = "账期", width = 15)
	@ApiModelProperty(value = "账期")
	@Dict(dicCode = "accountingPeriod")
	private String accountingPeriod;

	@ApiModelProperty(value = "货源参数是否开启")
	private String izOrderSet;

	@ApiModelProperty(value = "运费计算方式")
	private String izDriverPayset;

	@ApiModelProperty(value = "结算抹零")
	private String izDriverMl;

	@ApiModelProperty(value = "抹零")
	private String driverMlWs;

	@ApiModelProperty(value = "抹零范围")
	private String driverMlFw;

	@ApiModelProperty(value = "启用涨吨")
	private String izZd;

	@ApiModelProperty(value = "涨吨基数")
	private String zdJs;

	@ApiModelProperty(value = "服务费id")
	@Dict(dictTable = "hy_customer_company", dicText = "cost_service_name", dicCode = "id")
	private String costServiceId;

	@ApiModelProperty(value = "是否德邦订单(1是 0否)")
	private String izDbOrder;

	@ApiModelProperty(value = "德邦订单id")
	private String orderCode;

	@ApiModelProperty(value = "德邦订单错误描述")
	private String errCodes;

	@ApiModelProperty(value = "里程总里程数")
	//路线总里程数
	private BigDecimal mileage;


}
